package com.rede.didiok.common.dto.community;

import java.util.Date;
import java.util.List;
import java.util.Map;

import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.rede.didiok.common.dto.BaseDto;
import com.rede.didiok.common.dto.user.UserDto;
import com.rede.didiok.common.validator.annotion.Range;

/**
 * 用户动态表
 * 
 * @author Rede
 * @email didiok@foxmail.com
 * @date 2023-08-07 18:21:17
 */
@Data
public class UserMomentDto extends BaseDto<UserMomentDto> {
	/**
	 * 创建人的uid
	 */
	private String createUserUid;
	/**
	 * 创建人的uid的in查询
	 */
	private List<String> createUserUidIn;

	/**
	 * 管理员
	 */
	private String adminUid;

	/**
	 * 审核状态【0：未审核，1：审核拒绝，2：审核通过】
	 */
	private Integer auditStatus;

	/**
	 * 审核时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date auditTime;

	/**
	 * 审核人名称
	 */
	private String auditName;

	/**
	 * 审批拒绝原因
	 */
	private String rejectReason;

	/**
	 * 动态内容
	 */
	@Range(max = 1024)
	private String content;

	/**
	 * 是否发布
	 */
	private Integer isPublish;

	/**
	 * 文件uids
	 */
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	private String fileUids;

	/**
	 * 话题uids
	 */
	private String topicUids;

	/**
	 * 话题uids模糊查询条件
	 */
	private String topicUidsLike;

	/**
	 * url链接
	 */
	private String url;

	/**
	 * url链接信息
	 */
	private String urlInfo;

	/**
	 * 点击数
	 */
	private Integer clickCount;

	/**
	 * 点击数
	 */
	private Integer commentCount;

	/**
	 * 备注信息
	 */
	private String remark;

	/**
	 * 是否开启评论(0:否， 1:是)
	 */
	private String openComment;

	/**
	 * 依据排序
	 */
	private String orderBy;

	/**
	 * 最热
	 */
	private Boolean isHot;
	/**
	 * 最新
	 */
	private Boolean isNew;
	/**
	 * 是否后台传入
	 */
	private Boolean isBack;

	/**
	 * 创建时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date createTime;
	/**
	 * 更新时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private Date updateTime;

	/**
	 * 排序字段
	 */
	private Integer sort;

	// 以下字段不存入数据库
	/**
	 * 图片列表信息
	 */
	private List<String> photoList;

	/**
	 * 用户信息
	 */
	private UserDto user;

	/**
	 * 话题列表
	 */
	private List<UserMomentTopicDto> userMomentTopicList;

	/**
	 * 评论列表
	 */
	private List<MomentCommentDto> commentList;

	/**
	 * 点赞相关信息
	 */
	private Map<String, Object> praiseInfo;

	/**
	 * 点赞的用户列表
	 */
	private List<UserDto> praiseUserList;

	/**
	 * 收藏相关信息
	 */
	private Map<String, Object> collectInfo;

	/**
	 * 积分合计
	 */
	private String sumCredits;
	/**
	 * 是否属于当前登录用户的动态
	 */
	private Integer myOwn;
	/**
	 * 是否是该条动态的管理员
	 */
	private Integer manage;
	/**
	 * topicUid
	 */
	private String topicUid;
}
